Фрагмент для ознакомления
2
ВВЕДЕНИЕ
В современном образовательном процессе работы различного рода, выполняемые студентами, играют важную роль в оценке знаний и навыков студентов. Однако учет и управление большим количеством курсовых работ может представлять сложность для преподавателей и администрации учебных заведений. Информационная система по учету работ студентов призвана способствовать решению этой проблемы, предоставляя эффективный инструментарий для систематизации, хранения и анализа данных о курсовых работах.
Данная система позволит автоматизировать процессы регистрации тем курсовых работ, отслеживания прогресса их выполнения, оценки и формирования отчетности. Это не только упростит работу преподавателей и администраторов, но и предоставит студентам удобный доступ к информации о своих курсовых работах.
В рамках этой курсовой работы будут рассмотрены вопросы разработки программного обеспечения, проанализированы требования к системе учета курсовых работ, спроектирована структура базы данных и разработан пользовательский интерфейс.
Целью работы является разработка информационной системы для автоматизации процесса учета и управления работами студентов.
Для достижения цели необходимо решить следующие задачи :
1. Определить требования к информационной системе на основе потребностей всех заинтересованных сторон.
2. Разработать концептуальную модель информационной системы, включая структуру базы данных и основные функциональные модули.
3. Разработать программную реализацию информационной системы.
1 ОБЩИЕ СВЕДЕНИЯ О QTCREATOR
1.1 Среда разработки QtCreator
Среда разработки QtCreator представляет собой программу, предназначенную для решения задач визуального программирования с применением библиотеки Qt. Рассмотрим основные особенности этой библиотеки.
В качестве языка разработки программного обеспечения использовалась библиотека Qt [1,2].
Библиотека Qt представляет собой кросс-платформенный фреймворк прикладного уровня. Он широко используется для разработки программного обеспечения различного назначения. Одной из сильных сторон данной библиотеки является наличие богатого набора графических компонент, поддерживающих разработку графических интерфейсов. Языком реализации Qt является язык C++. Это позволяет разработчику взаимодействовать с другими мощными расширениями этого языка. Помимо C++, библиотека Qt предоставляет для других языков программирования. В качестве примеров можно привести такие языки, как Python (PyQt), Ruby (Korundum/QtRuby) и Perl (PerlQt).
Интерес представляет одна особенность Qt, выделяющей ее на фоне аналогов. Она состоит в том, что при сборке приложений используется метаобъектный компилятор (МОК) (от англ. Meta Object Compiler или MOC). Он необходим для генерации метаобъектного кода на основе библиотеки Qt. Сам код носит сопутствующий характер. Общая структура МОК-компилятора приведена на рисунке 1.1.
Рисунок 1.1. Структура МОК-компилятора
Схема МОК-компиляции приведена на рисунке 3.2.
Рисунок 1.2. Схема МОК-компиляции
На первом этапе компиляции МОК считывает одно (или более) определение C++ класса. Источником определений может быть как заголовочный файл языка C++, так и исходный файл программы. На их базе генерируется один исходный файл на языке С++. Он содержит метаобъектную информацию для классов. На втором этапе МОК-файл компилируется и собирается с реализацией класса. Его также можно добавить при помощи инструкции #include в исходный файл с описанием класса [2].
Другим способом сборки является применение утилиты qmake. Он используется для создания make-файлов. Это автоматизирует использование МОК и не требует его прямых вызовов. Таким образом, система МОК представляет из себя структуру, необходимую в целях компонентного программирования. Она содержит типовую информацию при запуске приложения. На ее уровне можно реализовывать новые принципы взаимодействия между классами и сущностями.
Qt позволяет разрабатывать пользовательские плагины. Их можно добавлять в палитру компонент визуального редактора. Помимо этого, можно менять и расширять логику их поведения. Существуют широкие возможности настройки их позиционирования, отображения и перерисовки на главной форме.
В поставке библиотеки Qt существует множетсво полезных инструментов. Так, среда Qt Designer позволяет создавать визуальные формы и диалоговые окна в интуитивно понятном режиме. Утилита Qt Linguist упрощает локализацию приложений. Справочная система Qt Assistant облегачает чтение документации по библиотеке. Она предоставляет возможность разработки справки для проектируемого с применением ПО.
Помимо приведенного выше, в Qt включена среда разработки Qt Creator. Она представляет собой комплексное решение, содержащее редактор кода, справку, графические средства Qt Designer. Среда Qt Creator предоставляет возможность отладки приложений. Для компиляции приложений можно использовать GCC или Microsoft VC++. Для отладки используется утилита GDB [3,4].
Модульная архитектура библиотеки Qt приведена на рисунке 1.3.
Рисунок 1.3. Модульная архитектура библиотеки Qt
Рассмотрим некоторые компоненты архитектуры Qt. QtCore представляет собой функционал ядра библиотеки. Его классы могут использоваться другими модулями и сущностями. QtGui предоставляет функции компонент графического интерфейса. Подсистема QtNetwork поддерживает классы, необходимые для написания сетевых программ. Так, поддерживаются протоколы HTTP,FTP, TCP/IP и UDP. Подсистема QtSvg позволяет работать с данными графики Scalable Vector Graphics (SVG). Модуль QtXml дает возможность работы с XML.
Обобщенная иерархия классов библиотеки Qt приведена на рисунке 1.4.
Рисунок 1.4. Обобщенная иерархия классов библиотеки Qt
Все объекты Qt представляют собой гибкие индивидуальные сущности. Наследование в иерархии начинается от объекта QObject. При работе с объектами используются ссылки. Поэтому понятие объекта и указателя на объект, наследуемого от QObject, синонимичны.
При реализации графических пользовательских интерфейсов взаимодействие объектов основано на механизме событий. При этом часто используются т.н. обратные вызовы. Это означает, что передача кода для последующего выполнения происходит с использованием таких объектов, как указатели на функции, функторы. В условиях событийной реализации широко поддерживается концепция обработчиков. Ее суть состоит в том, что обработчик может перехватить события определенного объекта.
Центральной концепцией Qt, описывающей взаимодействие объектов, является концепция сигналов и слотов. Архитектура их взаимодействия приведена на рисунке 1.5.
Рисунок 1.5. Архитектура взаимодействия объектов на основе слотов и сигналов
Сигнал возникает в случае, когда вызван отвечающий ему метод. Слот является методом, исполняемым при получении сигнала. Слоты могут иметь разные уровни инкапсуляции. При этом уровень защиты ограничивает использование слотов в качестве обычных методов. Однако это не влияет на возможность подключения сигналов к слотам.
Основное отличие слот-сигнальной модели от событийной с использованием обработчиков состоит в следующем. В отличие от событийной модели, число соединений слота с сигналов не ограничено. Аналогично, сигнал может подключаться к произвольному количеству слотов. В случае отправки сигнала выполняется вызов всех отвечающих ему слотов.
Таким образом, объектная модель Qt, а также приведенные выше возможности позволяют сделать вывод, что данная библиотека может применяться при разработке приложений разного уровня.
QtCreator – это программа которая упрощает создание графического интерфейса нашей программы, конечно внешний вид можно сделать и без помощи данной программы, но не для всех это будет удобно [1-6].
Начиная с версии 4.5.0 в комплект Qt включена среда разработки «Qt Creator», которая включает в себя редактор кода, справку, графические средства «Qt Designer» и возможность отладки приложений. «Qt Creator» может использовать GCC или Microsoft VC++ в качестве компилятора и GDB в качестве отладчика. Для Windows версий библиотека 10 комплектуется компилятором, заголовочными и объектными файлами MinGW .
Qt Creator - кроссплатформенная свободная IDE для разработки на С, С++ и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Основная задача Qt Creator — упростить разработку приложения на разных платформах. Поэтому среди возможностей, присущих любой среде разработки, есть и специфичные, такие как отладка приложений на QML и отображение в отладчике данных из контейнеров Qt, встроенный дизайнер интерфейсов как на QML, так и на Qt Widgets.
Qt Creator поддерживает системы сборки qmake, cmake, autotools. Для проектов, созданных под другими системами, может использоваться в качестве редактора исходных кодов. Есть возможность редактирования этапов сборки проекта. В Qt Сreator реализовано автодополнение, в том числе ключевых слов, введённых в стандарте C++11, подсветка кода. Также есть возможность задания стиля выравнивания, отступов и постановки скобок [5,6].
Реализован ряд возможностей при работе с сигнатурами методов, а именно: автогенерация пустого тела метода после его обновления; возможность автоматически изменить сигнатуру метода в определении, если она была изменена в объявлении и наоборот; возможность автоматически поменять порядок следования аргументов.
При навигации по коду доступно переключение между определением и объявлением метода, переход к объявлению метода, переименование метода как в отдельном проекте, так и во всех открытых. Также есть возможность вызвать справку согласно текущему контексту [2,4,6].
Окно Qt Creator имеет следующий вид
Рисунок 1.6. Общий вид Qt Designer
Среда Qt Creator располагает широкими возможностями кроссплатформенной разработки приложений разного назначения.
Так, если выбрать команду Create Project, то в соответствующем окне можно видеть варианты поддерживаемых проектов (рисунок 1.7).
Фрагмент для ознакомления
3
1. Прохоренок Н. А. Qt 6. Разработка оконных приложений на C++. – СПб.: БХВ-Петербург, 2022. — 512 с.
2. Шлее М. Qt 5.10. Профессиональное программирование на C++. – СПб.: БХВ-Петербург, 2020. — 1073 с.
3. Qt Cross-platform software development for embedded & desktop, - Текст: электронный. - URL: https://qt.io
4. QML Applications Qt 5.15, [электронный ресурс] https://doc.qt.io/ qt-5/qmlapplications.html
5. Алексеев Е.Р., Злобин Г.Г., Костюк Д.А., Чеснокова О.В., Чмыхало А.С. Программирование на языке С++ в среде Qt Creator // ООО "Альт Линукс". 2015. 448 с.
6. Сайт разработчика Qt. [электронный ресурс] URL: https://www.qt.io/product/development-tools.
7. Заботина, Н. Н. Проектирование информационных систем: учебное пособие / Н. Н. Заботина. — Москва: ИНФРА-М, 2020. — 331 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-004509-2. - Текст: электронный. - URL: https://znanium.com/catalog/product/1036508. – Режим доступа: по подписке.
8. Гагарина, Л. Г. Технология разработки программного обеспечения: учебное пособие / Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Сидорова-Виснадул; под ред. Л.Г. Гагариной. — Москва: ФОРУМ: ИНФРА-М, 2021. — 400 с. — (Среднее профессиональное образование). - ISBN 978-5-8199-0812-9. - Текст: электронный. - URL: https://znanium.com/catalog/product/1189951 – Режим доступа: по подписке
9. Гецци, Карло Основы инженерии программного обеспечения / Карло Гецци , Мехди Джазайери , Дино Мандриоли. - М.: БХВ-Петербург, 2012. - 832 c.